package cn.edu.zjgsu.ito.service;

import java.util.List;

import cn.edu.zjgsu.ito.vo.DemandCommentsSaveVo;
import cn.edu.zjgsu.ito.vo.DemandCommentsShowVo;
import cn.edu.zjgsu.ito.vo.DemandIdVo;
import cn.edu.zjgsu.ito.vo.DemandSaveVo;
import cn.edu.zjgsu.ito.vo.DemandSunSaveVo;
import cn.edu.zjgsu.ito.vo.OrderIdVo;
import cn.edu.zjgsu.ito.vo.OrderMessageShowVo;
import cn.edu.zjgsu.ito.vo.OrderNoCourierShowVo;
import cn.edu.zjgsu.ito.vo.OrderStateShowVo;
import cn.edu.zjgsu.ito.vo.PayPricePageShowVo;
import cn.edu.zjgsu.ito.vo.RefundReasonSaveVo;
import cn.edu.zjgsu.ito.vo.UseVouchersSaveVo;

/**
 * 用户求购类接口
 * @author Administrator
 *
 */
public interface UserDemandServiceI {

	public DemandIdVo release(DemandSaveVo demandSaveVo,int userId);

	/**
	 * 用户查看发单详情
	 * @param demandIdVo
	 * @return
	 */
	public OrderMessageShowVo releaseMessage(DemandIdVo demandIdVo);

	/**
	 * 用户支付接口
	 * @param orderIdVo
	 * @return
	 */
	public OrderStateShowVo payPrice(OrderIdVo orderIdVo);

	/**
	 * 用户确认收货接口
	 * @param orderIdVo
	 * @return
	 */
	public OrderStateShowVo received(OrderIdVo orderIdVo);

	/**
	 * 用户取消订单
	 * @param orderIdVo
	 * @return
	 */
	public OrderStateShowVo cancelOrder(OrderIdVo orderIdVo);

	/**
	 * 用户申请退款
	 * @param orderIdVo
	 * @return
	 */
	public OrderStateShowVo userRefund(RefundReasonSaveVo refundReasonSaveVo);

	/**
	 * 用户支付显示页面
	 * @param orderIdVo
	 * @return
	 */
	public PayPricePageShowVo payPricePage(OrderIdVo orderIdVo);

	/**
	 * 用户选择代金券接口
	 * @param vouchersIdVo
	 * @return
	 */
	public OrderIdVo payPricePageVoucher(UseVouchersSaveVo useVouchersSaveVo);

	/**
	 * 评价页面
	 * @param orderIdVo
	 * @return
	 */
	public DemandCommentsShowVo userCommentsPage(OrderIdVo orderIdVo);

	/**
	 * 用户评分接口
	 * @param demandCommentsSaveVo
	 */
	public void userDemandComments(DemandCommentsSaveVo demandCommentsSaveVo);

	/**
	 * 猜你想买
	 * @return
	 */
	public List<OrderNoCourierShowVo> wantToBuy(int userId);

	/**
	 * 阳光模式接单
	 * @param demandSunSaveVo
	 * @param userId
	 * @return
	 */
	public DemandIdVo releaseSun(DemandSunSaveVo demandSunSaveVo, int userId);
	
	

}
